The subject of the present invention in general pertains to a new Input-Output facility design that exploits high bandwidth integrated network adapters.
In a network computing environment, multitudes of commands and requests for retrieval and storage of data are processed every second. To properly address the complexity of routing these commands and requests, environments with servers have traditionally offered integrated network connectivity to allow direct attachments of clients such as Local Area Networks (LANs). Given the size of most servers, the number of clients usually is in the range of hundreds to thousands and the bandwidth required in the 10-100 Mbits/sec range. However, in recent years the servers have grown and the amount of data they are required to handle has grown with them. As a result, the existing I/O architectures need to be modified to support this order of magnitude increase in the bandwidth.
In addition, new Internet applications have increased the demand for improved latency. The adapters must support a larger number of users and connections to consolidate the network interfaces which are visible externally. The combination of all the above requirements presents a unique challenge to server I/O subsystems.
Furthermore, in large environments such as International Business Machines Enterprise System Architecture/390 (Enterprise System Architecture/390 is a registered trademark of International Business Machines Corporation), there are additional requirements that the I/O subsystem must remain consistent with existing support. Applications must continue to run unmodified, and error recovery and dynamic configuration must be preserved or even improved. Sharing of I/O resources must be enabled as well as the integrity of the data being sent or received. This presents new and complex challenges that need to be resolved.
In order to achieve bandwidths which are dramatically higher and still achieve other required challenges, a new system architecture is needed.
This application is being filed on the same day as the following related applications: Ser. No. 09/253,993; still pending, Ser. No. 09/253,658; still pending and Ser. No. 09/255,641 still pending. This application is also related to the following applications filed on Feb. 19, 1999: Ser. No. 09/253,246; still pending Ser. No. 09/253,250; still pending Ser. No. 09/253,247; still pending Ser. No. 09/253,248; still pending Ser. No. 09/252,712; still pending Ser. No. 09/252,552; still pending Ser. No. 09/252,728; still pending Ser. No. 09/252,730; still pending Ser. No. 09/253,101; still pending Ser. No. 09/253,286; still pending Ser. No. 09/252,542; still pending Ser. No. 09/253,249; still pending Ser. No. 09/252,556; still pending Ser. No. 09/252,555; still pending and Ser. No. 09/252,727 still pending.
A computer program product and storage device used for exchange and transfer of data in a network computing system having a main storage capable of connecting to at least one application server and an interface element with at least one adapter capable of establishing processing communication with at least one application user(s). The program device comprises a a computer program storage device readable by a digital processing apparatus and a program means comprising the steps of: receiving incoming data using said adapter; setting up one or more queues in main storage without causing interrupts in any running programs; updating status of said network computing system to reflect said new data; processing data in said main storage by interrogating multiple existing queues in said main storage simultaneously; and determining from interrogating said queues appropriate application server to which said data has to be forwarded to; designating at least one set of queues in said queuing mechanism as input queues and another as output queues; issuing a signal adapter instruction to provide initiative to check content of any or all queues in said queuing mechanism; specifying initiate-output or initiate-input appropriately by means of said signal adapter instruction to cause associated adapter to asynchronously process said output or input queues; and causing synchronization by means of said signal adapter instruction by signaling said associated data queues to update all entries in order to render them current.
The program product comprises of a data storage device including a computer usable medium having computer readable program means for ensuring proper and timely processing of data, the computer usable code means having and computer readable code means for dedicating at least one set of queues of said queuing mechanism as input queues and another set as output queues; for receiving incoming data using said adapter; for setting up one or more queues in main storage without causing interrupts in any running programs; for updating status of said network computing system to reflect said new data; for processing data in said main storage by interrogating multiple existing queues in said main storage simultaneously; and for determining from interrogating said queues appropriate application server to which said data has to be forwarded to.